Storage controllers often utilize a non-volatile memory to implement a write-through or a write-back cache and thereby enhance throughput for Input/Output (I/O) operations for a host. A flash memory is an example of a type of non-volatile memory used in PCIe Flash or Solid State Drives (SSDs) to implement a cache for a storage controller. However, flash memory has a limited lifetime of total writes that they can support before failing. This is undesirable because a storage controller writes to cache memory regularly during normal operation.